A federated database system is a type of database management system (DBMS) that can access independent database systems as a single database. These independent databases can be located remote from each other, and can be coupled via an electronic computer network. Because each individual database system can remain independent, the need to merge disparate database records into a single format before accessing the data is not necessary.
An Enterprise Information Integration (EII) system can enable the definition and querying of target schemas (also called data federation schemas), within a federated database system. The target schemas can be composed of target tables, over a set of distributed and heterogeneous data sources. These data sources can be operated inside or outside the enterprise.
An EII system is middleware that can include two types of components: data source wrappers and a query engine. The data source wrappers can expose metadata of the data sources in the form of relational schemas composed of source tables. The target tables that compose a target schema can be relational tables whose instances can be defined by relational database language queries that can reference source tables or previously defined target tables. A typical language for expressing target tables could be structured query language (SQL)—e.g., a “create view” statement of SQL. The query engine (QE) of an EII can provide a SQL interface to express multi-source queries that refer to source tables or target tables. At the time of execution, a multi-source query is first “unfolded” using the definitions of the target tables, and then decomposed into both a set of sub-queries that are processed by the wrappers, and an assembly query. The latter is processed by the QE using the results returned by the sub-queries. This decomposition of a multi-source query is called a query processing plan.